這次我們要教大家如何來創建檔案並存在手機的觸存空間之中。為了讓大家知道流程,就先示範創建一個文檔(txt)的過程。
開啟activity_main.xml,存成文字檔,所以創了兩個EditText,一個用來輸入檔案名稱,一個用來輸入檔案內容。最後在創一個Button來觸發存檔的事件。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/fileName"
android:layout_width="match_parent"
android:layout_height="70dp"
android:hint="文檔名稱" />
<EditText
android:id="@+id/fileContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/fileName"
android:hint="文檔內容" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="創建文檔"/>
</RelativeLayout>
設計完UI後來的JAVA設計的部分。在綁定完元件ID後給Button寫個監聽和觸發存檔的事件。下面解析一下程式碼的片段。path = this.getExternalFilesDir(null).getAbsolutePath();
用於設定存檔的位置,此種設定方式會存在Android/data/(專案名稱)/files中File file = new File(path + "/" + fileName.getText().toString() + ".txt");
用於創建新檔案,路徑就是剛剛的path加上EditText中輸入的檔案名稱FileOutputStream writeContent = new FileOutputStream(file);
設定檔案輸出流writeContent.write(fileName.getText().toString().getBytes());
將EditText中輸入的檔案內容寫進去
最後在利用Toast來顯示檔案是否創建成功
public class MainActivity extends AppCompatActivity {
String path;
Button button;
EditText fileName,fileContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
fileName = findViewById(R.id.fileName);
fileContent = findViewById(R.id.fileContent);
path = this.getExternalFilesDir(null).getAbsolutePath();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File file = new File(path + "/" + fileName.getText().toString() + ".txt");
try {
FileOutputStream writeContent = new FileOutputStream(file);
writeContent.write(fileName.getText().toString().getBytes());
writeContent.close();
Toast.makeText(MainActivity.this,"創建成功", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(MainActivity.this,"創建失敗", Toast.LENGTH_SHORT).show();
Log.v("ERROR","" + e);
}
}
});
}
}